package com.demo.java.OD201_250.OD217;

import java.util.*;
import java.util.stream.Collectors;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【日志排序 时间格式化】问题
 * @url： https://blog.csdn.net/weixin_43970743/article/details/145914932
 */
public class OdMain {
    public static void main(String[] args) {
        try (Scanner s = new Scanner(System.in)) {
            int n = s.nextInt(); // 输入时间条数
            s.nextLine(); // 处理换行符
            List<String> times = new ArrayList<>();
            for (int i = 0; i < n; ++i) {
                times.add(s.nextLine()); // 读取每一条时间
            }
            // 使用Java 8流式API进行排序
            times = times.stream()
                    .sorted(Comparator.comparingLong(OdMain::getTime)) // 按时间的毫秒数进行排序
                    .collect(Collectors.toList());
            times.forEach(System.out::println); // 输出排序后的时间
        }
    }

    // 将时间字符串转换为毫秒数
    private static long getTime(String str) {
        String[] t = str.split(":|\\."); // 按:和.分割时间
        int h = Integer.parseInt(t[0]) * 60 * 60 * 1000; // 小时转为毫秒
        int m = Integer.parseInt(t[1]) * 60 * 1000; // 分钟转为毫秒
        int s = Integer.parseInt(t[2]) * 1000; // 秒转为毫秒
        int n = Integer.parseInt(t[3]); // 毫秒部分
        return h + m + s + n; // 返回总毫秒数
    }
}